Origin

L'en-tête de requête Origin indique l'origine (c'est-à-dire le schéma, le nom d'hôte et le port) qui a déclenché la requête. Ainsi, si un agent utilisateur doit demander les ressources incluses dans une page ou récupérer les scripts exécutés sur cette page, l'origine de la page courante peut alors être incluse dans la requête.

Type d'en-tête En-tête de requête
Nom d'en-tête interdit Oui

Syntaxe

http
Origin: null
Origin: <schema>://<nomhote>
Origin: <schema>://<nomhote>:<port>

Directives

null

L'origine doit être protégée pour des raisons de confidentialité ou il s'agit d'une origine opaque, telle que définie par la spécification HTML (les cas correspondants sont décrits dans la section description ci-après).

<schema>

Le protocole utilisé. Il s'agit généralement de HTTP ou de HTTPS.

<nomhote>

Le nom de domaine ou l'adresse IP du serveur d'origine.

<port> Facultatif

Le numéro de port sur lequel écoute le serveur. Si aucun port n'est donné, c'est le port par défaut pour le protocole correspondant qui est utilisé (par exemple 443 pour une URL qui utiliserait le protocole HTTPS).

Description

L'en-tête Origin est semblable à l'en-tête Referer, mais ne contient pas le chemin de la ressource et peut valoir null. On l'utilise pour fournir le « contexte de sécurité » de la requête d'origine, sauf dans les cas où l'information de l'origine est superflue ou sensible pour des questions de vie privée.

Au sens large, les agents utilisateurs envoient l'en-tête Origin avec les requêtes :

Il existe certaines exceptions aux règles précédentes. Par exemple, lorsqu'une requête GET ou HEAD est effectuée en mode no-cors, l'en-tête Origin ne sera pas ajouté.

L'en-tête Origin peut valoir null dans certains cas (la liste qui suit n'est pas exhaustive) :

  • Le schéma de l'origine n'est pas http, https, ftp, ws, wss, ou gopher (y compris blob, file et data).
  • La requête porte sur des médias d'origines multiples, par exemple via les éléments <img>, <video> et <audio>.
  • Pour les documents créés via un programme à l'aide de createDocument(), ou générés à partir d'une URL data:, ou qui n'ont pas de contexte de navigation créateur.
  • Pour les redirections entre les origines.
  • Pour les éléments <iframe> dont l'attribut sandox ne contient pas la valeur allow-same-origin.
  • Pour les réponses qui sont des erreurs réseau.

Note : Une liste plus détaillée de ces cas avec null est présentée sur Stack Overflow : Quand les navigateurs envoient-ils l'en-tête Origin ? Quand l'origine est-elle mise à null ? (en anglais)

Exemples

http
Origin: https://developer.mozilla.org
http
Origin: https://developer.mozilla.org:80

Spécifications

Specification
The Web Origin Concept
# section-7
Fetch Standard
# origin-header

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi